/**
 * 
 */
package cl.hhha.web.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Transient;

/**
 * modela el dato telefonico
 * @author Óscar Álvarez V
 * @email oialvarez@gmail.com
 * @Version 1.0
 * @date 24-06-2009 14:18:54
 */
@Embeddable
public class Telefono extends BaseObject implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Transient
	private Boolean seleccionado;
	
	@Column(length=50, nullable=false)
	private Integer numeroTelefonico;
	
	/**
	 * @return the seleccionado
	 */
	public Boolean estaSeleccionado() {
		return seleccionado;
	}

	/**
	 * @param seleccionado the seleccionado to set
	 */
	public void setSeleccionado(Boolean seleccionado) {
		this.seleccionado = seleccionado;
	}

	/**
	 * @return the numero
	 */
	public Integer getNumeroTelefonico() {
		return numeroTelefonico;
	}

	/**
	 * @param numero the numero to set
	 */
	public void setNumeroTelefonico(Integer numero) {
		this.numeroTelefonico = numero;
	}
	
	
	/**
	 * Determina si el numero telefonico es valido
	 * @return true si el numeroTelefonico es mayor que 100.000
	 */
	public boolean esValido(){
		return numeroTelefonico > 100000;
	}

	/* (non-Javadoc)
	 * @see cl.hhha.web.model.BaseObject#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object o) {
		if( o == this){
			return true;
		}
		
		if (o instanceof Telefono){
			return o == null ? this.numeroTelefonico == numeroTelefonico : ((Telefono)o).numeroTelefonico.equals(this.numeroTelefonico);
		}
		
		return false;
	}

	/* (non-Javadoc)
	 * @see cl.hhha.web.model.BaseObject#hashCode()
	 */
	@Override
	public int hashCode() {
		return numeroTelefonico == null ? 0 : numeroTelefonico.hashCode() << 1;
	}

	/* (non-Javadoc)
	 * @see cl.hhha.web.model.BaseObject#toString()
	 */
	@Override
	public String toString() {
		return numeroTelefonico.toString();
	}
	
}
